package com.shujia.wyh.selenium_demos;

import org.openqa.selenium.By;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

import java.util.Scanner;

/*
    自动化爬虫的案例1：控制浏览器打开百度首页，5秒种之后自动关闭

    常见标签：
        <input> 输入框
        <a> 超链接
        <ul> 列表
        <li> 列表中的每个元素
        <table> 表格
        <iframe> 子页面
        <button> 按钮
        <div> 盒子
        <form> 表单

    xpath语法：用于解析并获取html中元素标签
    html中含有很多的元素标签，每个元素标签中还有可能含义其他的元素标签，每个元素标签代表不同的含义，在页面有不同的表示
    其次，每个元素标签中会含有若干个key=value这样的属性，如果一个标签中还有id属性，那么这个标签对应id值是全局唯一的

    绝对路径（完整路径）：/html/body/div[2]/div[1]/div[5]/div/div/form/span[1]/input
    相对路径：//input[@id='kw']

    如果同级别有多个相同的元素标签，要想获取最后一个使用last()函数：/html/body/div[2]/div[1]/div[5]/div/div/form/span[last()]


 */
public class SeleniumDemo1 {
    public static void main(String[] args) {
        new MyThread().start();
    }
}

class MyThread extends Thread{
    @Override
    public void run() {
        Scanner sc = new Scanner(System.in);
        // 在编写代码之前，确保正版的谷歌浏览器已经安装，以及驱动包下载好
        //1. 指定驱动包的位置
        System.setProperty("webdriver.chrome.driver", "D:\\Code\\IDEAProjects\\bigdata25-project\\bigdata25-project\\mysql\\src\\main\\java\\com\\shujia\\wyh\\utils\\chromedriver.exe");

        //2. 通过驱动打开浏览器
        WebDriver driver = new ChromeDriver();

        Dimension dimension = new Dimension(1920, 1080);
        driver.manage().window().setSize(dimension);

        //3. 指定网址url并打开
        //driver中就保存了我们看到了页面中所有的元素，其实就是刚刚看到的html代码
        driver.get("https://www.baidu.com");


        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        //定位到输入框元素
        WebElement shuru = driver.findElement(By.xpath("//input[@id='kw']"));
        System.out.println("请输入要搜索的内容：");
        String info = sc.next();
        shuru.sendKeys(info);

        //定位到搜索百度一下输入框
        driver.findElement(By.xpath("//input[@id='su']")).click();

        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }



        //关闭浏览器
        driver.quit();
    }
}
